package com.warm.test.service;

import com.warm.test.api.dto.TestLeaveDto;
import com.warm.test.api.vo.TestLeaveVo;
import com.warm.test.domain.TestLeave;
import com.warm.core.page.TableDataInfo;
import com.warm.orm.service.IBaseService;

import java.util.List;

/**
 * OA 请假申请Service接口
 *
 * @author warm
 */
public interface ITestLeaveService extends IBaseService<TestLeave> {
    /**
     * 查询OA 请假申请
     *
     * @param id OA 请假申请主键
     * @return OA 请假申请
     */
    public TestLeaveVo selectById(Long id);

    /**
     * 分页查询OA 请假申请列表
     *
     * @param dto OA 请假申请
     * @return 分页对象
     */
    TableDataInfo<TestLeaveVo> selectPage(TestLeaveDto dto);

    /**
     * 查询OA 请假申请列表
     *
     * @param dto OA 请假申请
     * @return OA 请假申请集合
     */
    public List<TestLeaveVo> selectList(TestLeaveDto dto);

    /**
     * 新增OA 请假申请
     *
     * @param dto OA 请假申请
     * @return 结果
     */
    public int insertByDto(TestLeaveDto dto);

    /**
     * 修改OA 请假申请
     *
     * @param dto OA 请假申请
     * @return 结果
     */
    public int updateByDto(TestLeaveDto dto);

    /**
     * 批量删除OA 请假申请
     *
     * @param ids 需要删除的OA 请假申请主键集合
     * @return 结果
     */
    public int deleteByIds(Long[] ids);
	
    /**
     * 提交审批
     *
     * @param id
     * @return
     */
    public boolean submit(Long id);

    /**
     * 办理
     *
     * @param dto OA 请假申请
     * @param taskId 任务id
     * @param skipType 跳转类型
     * @param message 审批消息
     * @return 结果
     */
    Boolean handle(TestLeaveDto dto, Long taskId, String skipType, String message);

}
